package com.warmheart.entity.secret;

import java.util.Date;

import com.warmheart.base.entity.BaseEntity;
import com.warmheart.builder.secret.SecretKeyCoBuilder;
import com.warmheart.builder.secret.SecretKeyRsBuilder;

/**
 * 
 * @ClassName: SecretKey
 * @Description: 密钥实体类，对应表名称为tb_secret_key
 *               温馨提示：不要修改该实体类的任何字段
 * @author ZhangJianyang
 * @date 2025年06月16日 下午13:05:35
 *
 */
public class SecretKey extends BaseEntity<SecretKeyCoBuilder, SecretKeyRsBuilder> {

	private static final long serialVersionUID = 1L;
	
	/**
     * 
     * @Title: tableName
     * @Description: 表名称
     * @author ZhangJianyang
     * @return
     */
    @Override
    public String tableName() {
        return "tb_secret_key";
    }

    public SecretKeyCoBuilder coBuilder() {
        return new SecretKeyCoBuilder(this);
    }

    public SecretKeyRsBuilder rsBuilder() {
        return new SecretKeyRsBuilder(this);
    }

    /**
     * 密钥名称
     */
    private String name;

    /**
     * 密钥类型
     */
    private String keyType;

    /**
     * 加密后的密钥内容
     */
    private String encryptedKey;

    /**
     * 加密向量
     */
    private String encryptionIv;

    /**
     * 密钥描述
     */
    private String description;

    /**
     * 所属用户ID
     */
    private Integer ownerId;

    /**
     * 是否激活
     */
    private String state;

    /**
     * 过期时间
     */
    private Date expiresTime;

    /**
     * 
     * @Title: getName
     * @Description: 密钥名称getter方法
     * @author ZhangJianyang
     * @return
     */
    public String getName(){
        return name;
    }
    
    /**
     * 
     * @Title: setName
     * @Description: 密钥名称setter方法
     * @author ZhangJianyang
     * @param name
     */
    public void setName(String name){
        this.name = name;
    }

    /**
     * 
     * @Title: getKeyType
     * @Description: 密钥类型getter方法
     * @author ZhangJianyang
     * @return
     */
    public String getKeyType(){
        return keyType;
    }
    
    /**
     * 
     * @Title: setKeyType
     * @Description: 密钥类型setter方法
     * @author ZhangJianyang
     * @param keyType
     */
    public void setKeyType(String keyType){
        this.keyType = keyType;
    }

    /**
     * 
     * @Title: getEncryptedKey
     * @Description: 加密后的密钥内容getter方法
     * @author ZhangJianyang
     * @return
     */
    public String getEncryptedKey(){
        return encryptedKey;
    }
    
    /**
     * 
     * @Title: setEncryptedKey
     * @Description: 加密后的密钥内容setter方法
     * @author ZhangJianyang
     * @param encryptedKey
     */
    public void setEncryptedKey(String encryptedKey){
        this.encryptedKey = encryptedKey;
    }

    /**
     * 
     * @Title: getEncryptionIv
     * @Description: 加密向量getter方法
     * @author ZhangJianyang
     * @return
     */
    public String getEncryptionIv(){
        return encryptionIv;
    }
    
    /**
     * 
     * @Title: setEncryptionIv
     * @Description: 加密向量setter方法
     * @author ZhangJianyang
     * @param encryptionIv
     */
    public void setEncryptionIv(String encryptionIv){
        this.encryptionIv = encryptionIv;
    }

    /**
     * 
     * @Title: getDescription
     * @Description: 密钥描述getter方法
     * @author ZhangJianyang
     * @return
     */
    public String getDescription(){
        return description;
    }
    
    /**
     * 
     * @Title: setDescription
     * @Description: 密钥描述setter方法
     * @author ZhangJianyang
     * @param description
     */
    public void setDescription(String description){
        this.description = description;
    }

    /**
     * 
     * @Title: getOwnerId
     * @Description: 所属用户IDgetter方法
     * @author ZhangJianyang
     * @return
     */
    public Integer getOwnerId(){
        return ownerId;
    }
    
    /**
     * 
     * @Title: setOwnerId
     * @Description: 所属用户IDsetter方法
     * @author ZhangJianyang
     * @param ownerId
     */
    public void setOwnerId(Integer ownerId){
        this.ownerId = ownerId;
    }

    /**
     * 
     * @Title: getState
     * @Description: 是否激活getter方法
     * @author ZhangJianyang
     * @return
     */
    public String getState(){
        return state;
    }
    
    /**
     * 
     * @Title: setState
     * @Description: 是否激活setter方法
     * @author ZhangJianyang
     * @param state
     */
    public void setState(String state){
        this.state = state;
    }

    /**
     * 
     * @Title: getExpiresTime
     * @Description: 过期时间getter方法
     * @author ZhangJianyang
     * @return
     */
    public Date getExpiresTime(){
        return expiresTime;
    }
    
    /**
     * 
     * @Title: setExpiresTime
     * @Description: 过期时间setter方法
     * @author ZhangJianyang
     * @param expiresTime
     */
    public void setExpiresTime(Date expiresTime){
        this.expiresTime = expiresTime;
    }
}
